package cn.yunyichina.provider.register.vo;

import cn.yunyichina.provider.framework.annotation.validate.*;
import com.alibaba.fastjson.JSONObject;

public class PayRegisterOutVoRequest implements AnnotationValidable {

    /* pay_amount */
    private String payAmount;

    public String getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(String payAmount) {
        this.payAmount = payAmount;
    }

    /* ps_ordnum */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String outOrderNo;

    public void setOutOrderNo(String outOrderNo) {
        this.outOrderNo = outOrderNo;
    }

    public String getOutOrderNo() {
        return outOrderNo;
    }

    /* 第三方支付机构交易流水号(用于对帐) */
    @ValidateSize(minSize = "0", maxSize = "50")
    private String paymentDealId;

    public void setPaymentDealId(String paymentDealId) {
        this.paymentDealId = paymentDealId;
    }

    public String getPaymentDealId() {
        return paymentDealId;
    }

    /* 5：支付宝服务窗支付（含医保） */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "2")
    @ValidateStringIn(value = "99,98")
    private Short payMode;

    public Short getPayMode() {
        return payMode;
    }

    public void setPayMode(Short payMode) {
        this.payMode = payMode;
    }

    /* 支付时间 yyyy-MM-dd HH:mm:ss */
    @ValidateNotNullAndNotEmpty
    @ValidatePattern(pattern = "[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}")
    private String payTime;

    public void setPayTime(String payTime) {
        this.payTime = payTime;
    }

    public String getPayTime() {
        return payTime;
    }

    /* 用户Id: 支付宝alipayUserId 微信 openId */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String openId;

    public String getOpenId() {
        return openId;
    }

    public void setOpenId(String openId) {
        this.openId = openId;
    }

    /* 云医通订单号 */
    @ValidateNotNullAndNotEmpty
    @ValidateSize(minSize = "0", maxSize = "50")
    private String yytOrderNo;

    public void setYytOrderNo(String yytOrderNo) {
        this.yytOrderNo = yytOrderNo;
    }

    public String getYytOrderNo() {
        return yytOrderNo;
    }
    
    /* 收款人标识 */
    @ValidateNotNullAndNotEmpty 
    @ValidateSize(minSize = "0", maxSize = "50")
    private String payeeAppId;

    public String getPayeeAppId() {
        return payeeAppId;
    }

    public void setPayeeAppId(String payeeAppId) {
        this.payeeAppId = payeeAppId;
    }
    
    @ValidateSize(minSize = "0", maxSize = "50")
    private String hospitalCode;

    public String getHospitalCode() {
        return hospitalCode;
    }

    public void setHospitalCode(String hospitalCode) {
        this.hospitalCode = hospitalCode;
    }

    private String orgId;

    public String getOrgId() {
        return orgId;
    }

    public void setOrgId(String orgId) {
        this.orgId = orgId;
    }


    private JSONObject extendParams;

    public JSONObject getExtendParams() {
        return extendParams;
    }

    public void setExtendParams(JSONObject extendParams) {
        this.extendParams = extendParams;
    }

    private String insuranceAmount;

    public String getInsuranceAmount() {
        return insuranceAmount;
    }

    public void setInsuranceAmount(String insuranceAmount) {
        this.insuranceAmount = insuranceAmount;
    }
}